
package collection.mapTest;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/**
 * @author lcx
 *
 *使用遍历map的两种方法，比较速度
 *1. 提取处KeySet序列进行遍历
 *2. 直接用EntrySet集合进行遍历
 *
 *测试数量级别 1，000，000
 *结果测试，KeySet获取iterator所用时间基本上等于0，但是KeySet比较慢是意味get()方法用长
 *总体来说，EntrySet速度快一倍
 */

public class BianLiSpeedTest {

	public static void bl1(Map map)
	{
		long start=System.currentTimeMillis();
		Iterator it=map.keySet().iterator();
		
		long start2=System.currentTimeMillis();
		while(it.hasNext())
		{
			Object k=it.next();
			Object v=map.get(k);
		}
		long end=System.currentTimeMillis();
		System.out.println("KeySet用时   "+(end-start));
	}
	
	public static void bl2(Map map)
	{
		Iterator it=map.entrySet().iterator();
		long start=System.currentTimeMillis();
		while(it.hasNext())
		{
			Map.Entry  entry=(Map.Entry) (it.next());
			//			Object k=entry.getKey();
			Object v=entry.getValue();
		}
		long end=System.currentTimeMillis();
		System.out.println("EntrySet用时   "+(end-start));
	}

	public static void main(String[] args) {
		HashMap map=new HashMap();
		for(int i=0;i<2000000;i++)
		{
			map.put(i, i);
		}
		bl1(map);
		bl2(map);
		//		long start=System.currentTimeMillis();
		//		for(int i=0;i<1000000;i++)
		//		{
		//			long t=1l;
		//		}
		//		long end=System.currentTimeMillis();
		//		System.out.println("��ʱ��"+(end-start));
	}

}
